(function(){
    // common.less 现在不够细致，也需要进行拆分。比如组件上的样式可以按模块拆出来，如 form.less，所有的样式放在一起统一管理
    require("./_less/common.less").use();

    // jsonp
    window.Jsonp = {};

    // vway
    var $ = require('ether-vway');

    // var isMob = Math.min(screen.availWidth, screen.availHeight) < 768;

    $.config({
        shortcut: '$',
        globalData: {
            name: "G",
            data: {
                user: {}
            }
        },
        // 注册 api 统计参数，注册响应事件
        api: {
            stuff: function(){
                return {};
            },
            success: function(response){
                if(response.body.code === 0){
                    return Promise.resolve(response.body.data);
                } else {
                    return Promise.reject(response);
                }
            },
            error: function(xhr, error){
                if(!error){
                    $.popper('<p style="font-size:.14rem;line-height:.2rem;">抱歉，网络请求出现错误，请重试 :::>_<:::</p>');
                } else {
                    error(xhr);
                }
            }
        },
        // 注册布局
        layout: {
            layouts: {
                'base': require("./_layout/base/i.js")
            },
            // autoFillQuery: true,
            // autoLoadData: true,
            title: '任意门',
            suffix: ' - 任意门',
            defaultLayout: 'base'
        },
        // 注册路由
        router: {
            routes: require('./_router/route.config.json'),
            pretreater: function(file){
                return '/assets/' + getDist('vs/' + file);
            },
            // autoRoute: ['index', 'index'],
            autoCut: false,
            configure: {
                before: function(){
                    // if login, do nothing before route. else prevent route match and go to the login page.
                    // if($.ls.getGlobal('TOKEN') || location.pathname === '/account/login')return;
                    // this.replaceRoute('/account/login?after_login=' + encodeURIComponent(location.pathname + location.search));
                    // return false;
                },
                on: function(){
                    // _hmt.push(['_trackPageview', '/' + this.getRoute().join('/')]);
                }
            }
        }
    });
    Vue.use($);

    // var mobile = require('./_layout_common/mobile.js');
    // $.yx = mobile.yx;
    // // TODO 先把组件都放到一级吧，以后做组件库的时候再整理
    require("./_module/index.js");
    // // TODO 组件库
    // Vue.component('fetchmore', require("./_components/fetchmore/fetchmore.js"));
    // Vue.component('spinner', require("./_components/spinner/spinner.js"));
    // Vue.component('v-switch', require("./_components/switch/switch.js"));
    // // TODO swipe
    // Vue.component('swipe', require("./_components/swipe/swipe.js"));
})();
